<?php

namespace Muyuxuanpay\threePay;
/**
 * 进件管理
 */
interface MerchantIncoming
{
    /**
     * 图片上传
     */
    public function upImage(string $imagePath,string $order_no=''):string|int;

    /**
     * 文件上传（包括视频）
     * @param string $filePath
     * @return string|int
     */
    public function upFile(string $filePath):string|int;

    /**
     * 提交进件
     * @param string|int $order_no 订单号
     * @param array $merchant_data
     * @param array $ban_data
     * @param array $image_data
     * @param array $product_data
     * @param array $settle_data
     * @param string $notify_url
     * @param array $event
     * @return array
     */
    public function applyFor(string|int $order_no='',array $merchant_data = [],array $ban_data=[],array $image_data=[],array $product_data=[],array $settle_data=[],string $notify_url='',array $event=[]):array;

    /**
     * 确认进件
     * @param string|int $merch_no 商户号
     * @param string $signm 标识
     * @param string $terminal_address 终端地址
     * @param array $event 其他
     * @return mixed
     */
    public function applyConfirm(string|int $merch_no,string $signm,string $terminal_address,array $event=[]);

    /**
     * 修改资料
     * @param string $merch_no 商户号
     * @param array $type 请求类型
     * @param array $event 其他
     * @return mixed
     */
    public function ModifyData(string $merch_no,$type,array $event=[]);

    /**
     * 获取进件状态异步通知
     * @param array $data
     * @return mixed
     */
    public function incomingStatusNotify(array $data);

    /**
     * 查询进件状态
     * @param string|int $order_no
     * @param array $event
     * @return int //status=1成功,2失败,3审核中,4已撤销
     */
    public function incomingStatusQuery(string|int $order_no,array $event = []):int;

    /**
     * 查询额度
     * @param array $data
     * @return mixed
     */
    public function queryQuota(array $data);

    /**
     * 结算异步通知
     * @return mixed
     */
    public function settlementNotify(array $data);

    /**
     * 结算查询
     * @return mixed
     */
    public function settlementQuery(array $data);


    /**
     * 提交认证
     * @param string|int $wx_merch_no 微信商户编号
     * @param array $business_type 提交类型
     * @param array $contact_info 联系人信息
     * @param array $subject_info 主体信息
     * @param array $identification_info 法人身份信息
     * @param array $event 其他信息
     * @return void
     */
    public function authSubmit(string|int $wx_merch_no,string $business_type='all',array $contact_info=[],array $subject_info=[],array $identification_info=[],array $event=[]);

    /**
     * 认证状态查询
     * @param array $data
     * @return mixed
     */
    public function authStatusQuery(array $data);

    /**
     * 确认认证
     * @param array $data
     * @return mixed
     */
    public function authConfrim(array $data);
    /**
     * 撤销认证
     * @param array $data
     * @return mixed
     */
    public function revokeAuth(array $data);
}